Micron Document
NexusPi Git Node

Node / mirrors / microReticulum_Firmware / files / tests / test_firmware_image.py

Displaying Raw • Download

tests/test_firmware_image.py HEAD (592c826d) Text, 1.89 KB

Tff7b72import T7ee787hashlib
Tff7b72import T7ee787unittest

Tff7b72from T7ee787firmware_image Tff7b72import Te6edf3esp_image_sha256Tb4b4b4, Te6edf3firmware_hash_kiss_frame


Tff7b72def Td2a8ffmake_imageTb4b4b4(Te6edf3payloadTb4b4b4: Tffa657bytesTb4b4b4, Tff7b72*Tb4b4b4, Te6edf3hash_appendedTb4b4b4: Tffa657boolTb4b4b4) Tff7b72-Tff7b72> Tffa657bytesTb4b4b4:
Te6edf3header Tff7b72= Tffa657bytearrayTb4b4b4(T79c0ff24Tb4b4b4)
Te6edf3headerTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= T79c0ff0xE9
Te6edf3headerTb4b4b4[T79c0ff23Tb4b4b4] Tff7b72= Tffa657intTb4b4b4(Te6edf3hash_appendedTb4b4b4)
Te6edf3content Tff7b72= Tffa657bytesTb4b4b4(Te6edf3headerTb4b4b4) Tff7b72+ Te6edf3payload
Tff7b72if Te6edf3hash_appendedTb4b4b4:
Tff7b72return Te6edf3content Tff7b72+ Te6edf3hashlibTff7b72.Td2a8ffsha256Tb4b4b4(Te6edf3contentTb4b4b4)Tff7b72.Td2a8ffdigestTb4b4b4(Tb4b4b4)
Tff7b72return Te6edf3content


Tff7b72class T56d364EspImageSha256TestsTb4b4b4(Te6edf3unittestTff7b72.Td2a8ffTestCaseTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8fftest_hashes_complete_image_without_appended_hashTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3image Tff7b72= Te6edf3make_imageTb4b4b4(Ta5d6ffbTa5d6ff"Ta5d6fffirmwareTa5d6ff"Tb4b4b4, Te6edf3hash_appendedTff7b72=Tff7b72FalseTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffassertEqualTb4b4b4(Te6edf3esp_image_sha256Tb4b4b4(Te6edf3imageTb4b4b4)Tb4b4b4, Te6edf3hashlibTff7b72.Td2a8ffsha256Tb4b4b4(Te6edf3imageTb4b4b4)Tff7b72.Td2a8ffdigestTb4b4b4(Tb4b4b4)Tb4b4b4)

Tff7b72def Td2a8fftest_returns_valid_appended_hashTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3image Tff7b72= Te6edf3make_imageTb4b4b4(Ta5d6ffbTa5d6ff"Ta5d6fffirmwareTa5d6ff"Tb4b4b4, Te6edf3hash_appendedTff7b72=Tff7b72TrueTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffassertEqualTb4b4b4(Te6edf3esp_image_sha256Tb4b4b4(Te6edf3imageTb4b4b4)Tb4b4b4, Te6edf3imageTb4b4b4[Tff7b72-T79c0ff32Tb4b4b4:Tb4b4b4]Tb4b4b4)

Tff7b72def Td2a8fftest_rejects_invalid_appended_hashTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3image Tff7b72= Te6edf3make_imageTb4b4b4(Ta5d6ffbTa5d6ff"Ta5d6fffirmwareTa5d6ff"Tb4b4b4, Te6edf3hash_appendedTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3damaged_image Tff7b72= Te6edf3imageTb4b4b4[Tb4b4b4:Tff7b72-T79c0ff1Tb4b4b4] Tff7b72+ Tffa657bytesTb4b4b4(Tb4b4b4[Te6edf3imageTb4b4b4[Tff7b72-T79c0ff1Tb4b4b4] Tff7b72^ T79c0ff0xFFTb4b4b4]Tb4b4b4)

Tff7b72with Tff7b72selfTff7b72.Td2a8ffassertRaisesRegexTb4b4b4(Tf85149ValueErrorTb4b4b4, Ta5d6ff"Ta5d6ffinvalid appended SHA-256Ta5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3esp_image_sha256Tb4b4b4(Te6edf3damaged_imageTb4b4b4)

Tff7b72def Td2a8fftest_rejects_non_esp_imageTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72with Tff7b72selfTff7b72.Td2a8ffassertRaisesRegexTb4b4b4(Tf85149ValueErrorTb4b4b4, Ta5d6ff"Ta5d6ffnot an ESP application imageTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3esp_image_sha256Tb4b4b4(Tffa657bytesTb4b4b4(T79c0ff24Tb4b4b4)Tb4b4b4)


Tff7b72class T56d364FirmwareHashKissFrameTestsTb4b4b4(Te6edf3unittestTff7b72.Td2a8ffTestCaseTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8fftest_frames_and_escapes_firmware_hashTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3firmware_hash Tff7b72= Tffa657bytesTb4b4b4(Tb4b4b4[T79c0ff0xC0Tb4b4b4, T79c0ff0xDBTb4b4b4]Tb4b4b4) Tff7b72+ Tffa657bytesTb4b4b4(Tffa657rangeTb4b4b4(T79c0ff30Tb4b4b4)Tb4b4b4)

Te6edf3frame Tff7b72= Te6edf3firmware_hash_kiss_frameTb4b4b4(Te6edf3firmware_hashTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffassertEqualTb4b4b4(Te6edf3frameTb4b4b4[Tb4b4b4:T79c0ff2Tb4b4b4]Tb4b4b4, Tffa657bytesTb4b4b4(Tb4b4b4[T79c0ff0xC0Tb4b4b4, T79c0ff0x58Tb4b4b4]Tb4b4b4)Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffassertEqualTb4b4b4(Te6edf3frameTb4b4b4[T79c0ff2Tb4b4b4:T79c0ff6Tb4b4b4]Tb4b4b4, Tffa657bytesTb4b4b4(Tb4b4b4[T79c0ff0xDBTb4b4b4, T79c0ff0xDCTb4b4b4, T79c0ff0xDBTb4b4b4, T79c0ff0xDDTb4b4b4]Tb4b4b4)Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffassertEqualTb4b4b4(Te6edf3frameTb4b4b4[Tff7b72-T79c0ff1Tb4b4b4]Tb4b4b4, T79c0ff0xC0Tb4b4b4)

Tff7b72def Td2a8fftest_rejects_incorrect_hash_lengthTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72with Tff7b72selfTff7b72.Td2a8ffassertRaisesRegexTb4b4b4(Tf85149ValueErrorTb4b4b4, Ta5d6ff"Ta5d6ffexactly 32 bytesTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3firmware_hash_kiss_frameTb4b4b4(Tffa657bytesTb4b4b4(T79c0ff31Tb4b4b4)Tb4b4b4)


Tff7b72if Tff7b72__name__ Tff7b72== Ta5d6ff"Ta5d6ff__main__Ta5d6ff"Tb4b4b4:
Te6edf3unittestTff7b72.Td2a8ffmainTb4b4b4(Tb4b4b4)

Served by rngit 1.5.2 - Generated in 0.02s